A computer system 10, as shown in FIG. 1, includes several components that are collectively used by a user to perform various functions such as, for example, generating a document with a word processor. With the computer system 10, the user may input data to a computing portion 12 using peripheral devices such as a keyboard 18 or a mouse 20. Data may also be provided to the computing portion 12 using data storage devices (e.g. a floppy disk, fixed disk, flash device, CD, or DVD). The computing portion 12, using memory and other internal components, processes both internal data and data provided to the computing portion 12 by the user to generate data requested by the user. The generated data may be provided to the user via, for example, a display device 14 or a printer 16. The computing portion 12 of a computer system typically includes various components such as, for example, a power supply, data storage devices, and circuit boards containing circuitry required to perform the necessary and requested operations of the computer system.
The computing portion 12 may contain a plurality of circuit boards (e.g. printed circuit boards (PCBs) or printed wiring boards (PWBs)) on which various circuit components are implemented. In general, the computing portion 12 is comprised of at least one PCB containing one or more microprocessors, memory, integrated circuits (ICs), application specific integrated circuits (ASICs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), discrete logic, active components, and passive components. A PCB utilizes wires or traces of conductive material to provide interconnections between the various components that comprise the computing portion 12.
A single-core microprocessor 22 is shown in FIG. 2. The single-core microprocessor 22 is comprised of a single-core 24 in a single package. A multi-core microprocessor 26 is shown in FIG. 3. A multi-core microprocessor 26 is comprised of a plurality of cores 28, 30 in a single package. One of ordinary skill in the art will recognize, for example, a dual core microprocessor to be a single package containing two cores.
The computing portion 12 may be comprised of a system 32 containing a plurality of single-core microprocessors 34, 36 as shown in FIG. 4. The single-core microprocessors 34, 36 are each comprised of single cores 38, 40. One of ordinary skill in the art will recognize that such a system 32, for example, could be comprised of any number of single-core microprocessors 34, 36.
The computing portion 12 may be comprised of a system 44 containing a single multi-core microprocessor 44 as shown in FIG. 5. The multi-core microprocessor 44 is comprised of a plurality of cores 46, 48. The computing portion 12 may be comprised of a system 50 containing a plurality of multi-core microprocessors 52, 54 as shown in FIG. 6. Each multi-core microprocessor 52, 54 is comprised of a plurality of cores 56, 58, 60, 62. One of ordinary skill in the art will recognize that such a system 50 could be comprised of a plurality of multi-core microprocessors 52, 54.
One of ordinary skill in the art will recognize that a microprocessor typically contains a significant amount of Static Random Access Memory (SRAM) on die. Typical microprocessors utilize SRAM for an instruction cache and a data cache, which store repeatedly accessed instructions and data. Spot defects in SRAM can be caused by imperfections during the fabrication process. Spot defects include opens, shorts, and bridges. One of ordinary skill in the art will recognize an “open” as an extra resistance within a connection, a “short” as an undesired resistive path between a node and power or ground, and a “bridge” as an undesired resistive path between two connections which are not power or ground.
There are various fault models by which these SRAM spot defects can be characterized. One of ordinary skill in the art will recognize the use of March tests and other methods for detecting these spot defects in SRAM by executing a sequence of read and write operations on the SRAM.